// // 单个查询，例如登录
// const { QueryTypes } = require('sequelize');
// const sequelize = require("../models/db.js")
// const Users = require("../models/Users.js")
// exports.login = async function (Username, loginPwd) {
//     const result = await Users.findOne({ //查询配置，查询条件
//         where: {
//             Username
//         }
//     }).catch(()=>{})
//     // console.log(result)
//     // return result.toJSON();//sequelize对象  toJSON方法会让对象变得简单

//     // js稍微控制一下区分大小写，因为js史区分大小写的
//     // 如果result有值,进一步判断
//     // console.log(result.loginPwd);
//     if (result && result.loginPwd == loginPwd) {
//         return {
//             data: {},
//             meta: {
//                 msg: '登录成功',
//                 status: '200'
//             }
//         }
//     } else if (result && result.loginPwd != loginPwd) {
//         return {
//             data: {},
//             meta: {
//                 msg: '密码错误',
//                 status: '202'
//             }
//         }
//     }
//     else {
//         return {
//             data: {},
//             meta: {
//                 msg: '用户名不存在',
//                 status: '203'
//             }
//         }
//     }
// }



// exports.register = async function (Username, loginPwd) {
//     console.log(Username, loginPwd);
//     if(Username == ''||loginPwd =='') return { data: {}, meta: { msg: '用户名或密码不能为空', status: '204' } }
//     const result = await Users.findOne({ //查询配置，查询条件
//         where: {
//             Username
//         },
//         raw:true
//     })
//     console.log(result);
//     if (result != null) return { data: {}, meta: { msg: '用户名已存在', status: '203' } }
//     Users.create({
//         Username,
//         loginPwd
//     })
//     return { data: {}, meta: { msg: '注册成功', status: '200' } }


// }





// exports.aaa = async function (a, b) {


//   await sequelize.query('UPDATE  users set Username = :name where id = :id' , {
//         replacements: {
//             name: a,
//             id: b,
//         },
//         type: QueryTypes.UPDATE
//     }).catch(()=>{});
//     // console.log(users);

// }

// exports.DeleteUser = function (id) {
//     Users.destroy({
//         where: {
//             id
//         }
//     }).catch(()=>{})
// }





// 单个查询，例如登录
const { raw } = require('body-parser');
const { QueryTypes } = require('sequelize');
const sequelize = require("../models/db.js")
const Users = require("../models/Users.js")

console.log(Users);


exports.login = async function (Username, loginPwd) {
    console.log(Username, loginPwd);
    const result = await Users.findOne({ //查询配置，查询条件
        where: {
            Username
        },
        // attributes:['id'],
        raw:true
    }).catch(()=>{})
    console.log(result);
    


    if(!result) return { data: {}, meta: {msg: '用户名不存在',status: '203'} }
    if(result && result.loginPwd != loginPwd) return  { data: {}, meta: {msg: '密码错误',status: '202'} }
    return { data: {token:666666,userId:result.id}, meta: {msg: '登陆成功',status: '200'} }
}



exports.register = async function (Username, loginPwd) {
    console.log(Username, loginPwd);

    const result = await Users.findOne({ //查询配置，查询条件
        where: {
            Username
        }
    }).catch(()=>{})
    console.log(result);

    if (result != null) return { data: {}, meta: { msg: '用户名已存在', status: '203' } }
    Users.create({
        Username,
        loginPwd
    }).catch(()=>{})
    return { data: {}, meta: { msg: '注册成功', status: '200' } }


}





// exports.updateUser = async function (a, b) {


//   await sequelize.query('UPDATE  users set Username = :name where id = :id' , {
//         replacements: {
//             name: a,
//             id: b,
//         },
//         type: QueryTypes.UPDATE
//     }).catch(()=>{});

// }

//删除用户
exports.DeleteUser =async function (id) {
    const result = await Users.destroy({
        where: {
            id
        }
    }).catch(()=>{})
    console.log(result);
    if (result) {
        return {
            data: { result },
            meta: {
                msg: '删除成功',
                status: '200'
            }
        }
    } else {
        return {
            data: {},
            meta: {
                msg: '删除失败',
                status: '400'
            }
        }
    }
}

//添加用户
exports.addUsers = async function (Username,name,mail, loginPwd) {
    let result = await Users.create({
        Username,
        name,
        mail,
        loginPwd
    })
    if(result) {
        return {
            data: {
                result
            },

            meta: {
                msg: '添加用户成功',
                status: '200'
            }
        }

        
    }else {
        return {
            data: {},
            meta: {
                msg:'请求失败',
                status: '400'
            }
        }
    }

}

//修改用户
exports.updataUsers = async function (Username,name,mail, loginPwd,id) {
//    console.log(Username,loginPwd,id);
    let result = await Users.update({
        Username,
        name,
        mail,
        loginPwd},{
            where:{
                id 
            }    
        }
        
    ).catch(() => {});
    if(result) {
        return {
            data: {
                result
            },

            meta: {
                msg: '编辑用户成功',
                status: '200'
            }
        }

        
    }else {
        return {
            data: {},
            meta: {
                msg:'编辑失败',
                status: '400'
            }
        }
    }

}

//根据 id 修改数据

exports.getUsersById = async function(id) {
    const result = await sequelize.query("SELECT * FROM `users` where id = :id",
    {
        replacements: {
            id
        },
        type: QueryTypes.SELECT
    })
    console.log(result);
    if(result) {return {data: result, meta: {msg: "获取数据成功", status: '200'}}}
    return {data: {}, meta: {msg: "获取数据失败", status: '400'}}
}

//查询用户

exports.selectUsers = async function(Username) {
    // const result = await Users.findAll({ //查询配置，查询条件
        
    //        Username, 
    
        
    //     raw: true,
    //     // attributes:['entire']
    // }).catch(() => {})
    // console.log(1);
    // return {
    //     data: result,
    //     meta: {
    //         msg: '查询成功',
    //         status: '200'
    //     }
    // }

    const result = await sequelize.query("SELECT * FROM `users` where Username = :Username",
        {
            replacements: {
               Username
            },
            type: QueryTypes.SELECT
        },

    );
    console.log(result);
    if (result) { return { data: result, meta: { msg: '获取数据成功', status: '200' } } }
    return { data: {}, meta: { msg: '获取数据失败', status: '400' } }
}


exports.getUsers = async function (pageNum, pageSize) {
    if(!pageNum ||! pageSize) {
        const result = await sequelize.query("SELECT * FROM `userS`")
        type: QueryTypes.SELECT
    }
    const result = await Users.findAndCountAll( {
        type: QueryTypes.SELECT,
        limit:parseInt(pageSize),
        offset:parseInt((pageNum-1) * pageSize),
        raw:true 
    })


    console.log(result);
    if (result) {
        return {
            data:  result ,
            meta: {
                msg: '获取数据成功',
                status: '200'
            }
        }
    } 
}


exports.getUsers = async function () {
    const result = await sequelize.query("SELECT * FROM `users`", { type: QueryTypes.SELECT });
    console.log(result);
    if (result) {
        return {
            data: { result },
            meta: {
                msg: '获取数据成功',
                status: '200'
            }
        }
    } else {
        return {
            data: {},
            meta: {
                msg: '获取数据失败',
                status: '400'
            }
        }
    }
}




















